home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / shllutil.lha / shellutils-1.8 / src / nohup.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1992-10-28  |  2KB  |  49 lines

  1. #!/bin/sh
  2. # nohup -- run a command immume to hangups, with output to a non-tty
  3. # Copyright (C) 1991 Free Software Foundation, Inc.
  4.  
  5. # This program is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation; either version 2, or (at your option)
  8. # any later version.
  9.  
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. # GNU General Public License for more details.
  14.  
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program; if not, write to the Free Software
  17. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  
  19. # Written by David MacKenzie <djm@gnu.ai.mit.edu>.
  20.  
  21. # Make sure we get GNU nice, if possible; also allow
  22. # it to be somewhere else in PATH if not installed yet.
  23. PATH=@bindir@:$PATH
  24.  
  25. if [ $# -eq 0 ]; then
  26.   echo "Usage: nohup command [arg...]" 2>&1
  27.   exit 1
  28. fi
  29.  
  30. trap "" 1
  31. oldmask=`umask`; umask 077
  32. # Only redirect the output if the user didn't already do it.
  33. if [ -t 1 ]; then
  34.   # If we cannot write to the current directory, use the home directory.
  35.   if cat /dev/null >> nohup.out; then
  36.     echo "nohup: appending output to \`nohup.out'" 2>&1
  37.     umask $oldmask
  38.     exec nice -5 "$@" >> nohup.out 2>&1
  39.   else
  40.     cat /dev/null >> $HOME/nohup.out
  41.     echo "nohup: appending output to \`$HOME/nohup.out'" 2>&1
  42.     umask $oldmask
  43.     exec nice -5 "$@" >> $HOME/nohup.out 2>&1
  44.   fi
  45. else
  46.   umask $oldmask
  47.   exec nice -5 "$@"
  48. fi
  49.